Using Extensible Markup Language (XML), information may be represented in conformity with a specified hierarchical structure. An XML schema defines such a structure. An XML schema comprises a root XML element. One or more other XML elements may be nested within the root XML element as content of the root XML element. Such nested XML elements are called child XML elements of the root XML element. Conversely, the root XML element is called the parent XML element of the child XML elements. Each child XML element may, in turn, be a parent XML element of one or more additional child XML elements nested within the parent XML element. The parent-child relationships of XML elements within an XML schema define a hierarchical structure according to which information may be stored in a hierarchically structured manner.
Each XML element may comprise one or more XML attributes. An XML attribute provides additional information about an XML element. An XML attribute typically appears in the form attribute_name=‘attribute_value’. An XML attribute typically is enclosed within a single XML tag instead of being between XML tags. For example, in the XML element “<person gender=‘female’>”, “gender” is an XML attribute of the “person” XML element, and “female” is the value of the “gender” XML attribute. As used herein, statements about content values of XML elements also apply to the values of XML attributes. An XML schema specifies the type of each XML element's content value and each XML attribute's value.
Information stored in conformity with an XML schema does not need to indicate the XML tags of the XML elements in the XML schema. Specifically, as long as it is known to which XML schema such information conforms, content values that correspond to XML elements in an XML schema may be stored without the XML tags that would enclose the content values. For example, content values may be stored according to a format in which the content values are separated by delimiters such as comma characters. Reference may be made to the corresponding XML schema in order to align the content values with their corresponding XML elements in the XML schema. By storing content values without the XML tags that otherwise would enclose the content values, information may be stored more efficiently.
For another example, content management system structures, including database structures such as database tables and database views, may be generated based on an XML schema. The names and data types associated with columns in such database tables may correspond to names and data types indicated by attributes of XML elements in the XML schema. A content value that corresponds to a particular XML element in the XML schema may be stored in a database table's column that corresponds to the particular XML element.
Content values that correspond to XML elements in an XML schema may also be stored in content management systems other than database systems. For example, some file systems may store such content values according to a structure indicated by an XML schema.
Multiple different sets of content values, each based on the same XML schema, may be stored distinctly from each other. Each set is a separate “instance document.” For example, an XML schema may define an XML element such as “<element name=‘quantity’ type=‘integer’>”. One instance document may contain a content value of “1” that corresponds to the XML element. Another instance document may contain a content value of “2” that corresponds to the same XML element. When content values are stored in database tables, content values from different instance documents may be stored in different rows of the database tables. Content values that correspond to the same XML element may be stored in the same column of a database table.
Often, even after many instance documents have been generated in conformity with a particular XML schema, it may be desirable to evolve the XML schema. For example, it may be desirable to add a new XML element to the XML schema, sometimes by inserting the new XML element between existing XML elements in the XML schema. For another example, if a particular XML element represents an enumerated data type, it may be desirable to insert a new XML element into a set of child XML elements of the particular XML element, where each child XML element represents a different enumerated value.
An XML schema may be modified manually using, for example, a text editing tool. Unfortunately, as a consequence of the modification of the XML schema, existing instance documents that formerly conformed to the XML schema might cease to conform to the XML schema. Instance documents interpreted according to the modified XML schema might be interpreted incorrectly, causing content values in the instance documents to be aligned with the wrong XML elements in the modified XML schema. Also, existing instance documents may be interpreted incorrectly if the mapping of a specific column to a specific XML element has changed.
Additionally, content management system structures, including database structures such as database tables and database views, whose structures were based on the XML schema prior to the modification of the XML schema, might also cease to conform to the XML schema. As a result, it might be impossible to store correctly, in such content management system structures, content values in instance documents generated in conformity with the modified XML schema. For example, a database table might lack a column that corresponds to a new XML element that was inserted into the XML schema. Structures indicated by content management systems other than database systems similarly might cease to conform to an XML schema after the XML schema is modified.
There is no established approach for ensuring that XML-schema-based instance documents and content management system structures, such as database structures, will continue to conform to the XML schema upon which they are based after the XML schema has been modified. A technique is needed for evolving an XML schema while ensuring that XML-schema-based instance documents and content management system structures, such as database structures, will continue to conform to the XML schema even after the XML schema has been evolved.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.